The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions.
Prior art computers based on the design innovations of Turing and von Neumann currently dominate the field of general purpose computing. Yet this brilliant and fundamental design work was originally done with several now anachronistic constraints. The Turing and von Neumann computer architectures were also driven by a criterion of defining a simplest computer design that could therefore be reliable given the manufacturing technology available in the early 1940's. While electronics technology has dramatically evolved in the ensuing decades to empower the commercially feasible manufacture of increasingly more powerful logic circuits and more complex data processing systems, the prior art of computational system design has remained fixated upon complying with the design concepts and constraints selected by Turing and von Neumann that were established under the technological limitations and military necessities existent during the Second World War.
The Applicant has disclosed a radically new approach to the design of computational systems in both U.S. Pat. No. 7,840,777 and U.S. patent application Ser. No. 13/301,763 that each embody an inventive concept of computational design that is a novel and non-obvious departure from prior art computer design. In one singularly novel quality of the method of the present invention, the configurable circuit array of U.S. patent application Ser. No. 13/301,763 enables the automatic application of the entire command set of certain high level languages to automatically configure logic circuitry to computationally efficiently instantiate the logic of the originating high level source code without human operator intervention. More specifically, the method of the present invention enables the automated application of the higher level programming languages of FORTRAN, C, the Gnu C Complier (“GCC”), C++, JAVA and other suitable software languages known in the art by means of configurable logic and thereby instantiate logic of source code software programs written in each of these languages into a logic circuit configuration.
In prior art computers, the input to the prior art computer is a sequential series of instructions that is selected from a limited instruction set. In contrast, the method of the present invention (hereinafter, “the invented method”) discloses that a dynamically reconfigurable processor, to include the apparatus of the present invention (hereinafter, “invented processor”) need not have such an instruction set, but rather may execute a series of complex instructions that are applied to dynamically reconfigure a target circuit on the fly. The method of the present invention provides a compiler (hereinafter, “invented compiler”) that extracts the logic, values, parameters, information and interrelationships of a sequence of instructions to efficiently configure a series of reconfigurable circuits coupled with input/output (“I/O”) operations and memory operations. The invented compiler thereby accepts and automatically converts the logical flow of an arbitrarily long series of high level language instructions into an arbitrarily long sequence of reconfigurations of an array of reconfigurable circuits coupled with I/O and memory operations in order to functionally and practically perform a wide range of general purpose computing processes.
The prior art additionally includes reconfigurable logic circuitry that can be configured or reconfigured to at least partially implement data processing methods in accordance with a software program or software coded instructions. The prior art further provides software programs that consist of sequences of machine-executable commands that are organized as ordered lists of instructions that may be executed by a conventional, general purpose computer and that may allow for and include logical branching. However the use of software designed to be sequentially executed line-by-line by one or more central processor or arithmetic logic units may not allow for a more efficient operation possible by the special class of computational devices that may be configured, programmed and/or executed at least partly with parallel logic processing techniques. Furthermore, prior techniques of assigning computational circuitry, e.g., electronic circuitry, of an information technology system to support the implementation of a software program are dependent upon the nature of the hardware design of the information technology system.
There is therefore a long-felt need to provide methods and systems that enable a more efficient mapping of originating software coded information, to include but not limited to instructions, onto assignable and functionality appropriate types of logic circuits, such as electronic components of a dynamically reconfigurable processor. It is an additional object of the method of the present invention to provide a process that automatically derives software constructs that may be applied to dynamically reconfigure the reconfigurable elements and aspects of a dynamically reconfigurable processor.